<?php

abstract class Jf_Controller_Plugin_Abstract {

    protected $_request;

    protected $_response;

    public function setRequest (Jf_Controller_Request_Abstract $request) {
        $this -> _request = $request;
        return $this;
    }

    public function getRequest () {
        return $this -> _request;
    }

    public function setResponse (Jf_Controller_Response_Abstract $response) {
        $this -> _response = $response;
        return $this;
    }

    public function getResponse () {
        return $this -> _response;
    }

    public function getDispatcher () {
        return Jf_Controller_Dispatcher::getInstance ();
    }

    public function routeStartup (Jf_Controller_Request_Abstract $request, Jf_Controller_Response_Abstract $response) {}

    public function routeShutdown (Jf_Controller_Request_Abstract $request, Jf_Controller_Response_Abstract $response) {}

    public function dispatchLoopStartup (Jf_Controller_Request_Abstract $request, Jf_Controller_Response_Abstract $response) {}

    public function preDispatch (Jf_Controller_Request_Abstract $request, Jf_Controller_Response_Abstract $response) {}

    public function postDispatch (Jf_Controller_Request_Abstract $request, Jf_Controller_Response_Abstract $response) {}

    public function dispatchLoopShutdown (Jf_Controller_Request_Abstract $request, Jf_Controller_Response_Abstract $response) {}

}
